package com.kh.samr.entity.expert;

import com.kh.samr.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;

/**
 * 专家基础信息
 *
 * @author Harry
 * @date 2020/12/28
 */
@ApiModel(description = "专家基础信息")
@Table(name = "ep_expert_base_info")
@EqualsAndHashCode(callSuper = true)
@Entity(name = "ep_expert_base_info")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BaseInfo extends BaseEntity {
	
	private static final long serialVersionUID = 3082445116359876652L;
	
	/**
	 * 专家信息标准唯一标识
	 */
	@ApiModelProperty(value = "专家信息标准唯一标识", readOnly = true)
	@Column(length = 36)
	private String expertInfoStandardId;
	
	/**
	 * 真实姓名
	 */
	@ApiModelProperty(value = "真实姓名", readOnly = true)
	@Column(length = 100)
	private String fullName;
	
	/**
	 * 证件类型
	 */
	@ApiModelProperty(value = "证件类型", readOnly = true)
	@Column()
	private String idType;
	
	/**
	 * 证件号码
	 */
	@ApiModelProperty(value = "证件号码", readOnly = true)
	@Column(length = 50)
	private String idNumber;
	
	/**
	 * 性别
	 */
	@ApiModelProperty(value = "性别", readOnly = true)
	@Column(length = 10)
	private String gender;
	
	/**
	 * 国籍
	 */
	@ApiModelProperty(value = "国籍", readOnly = true)
	@Column(length = 50)
	private String nationality;
	
	/**
	 * 民族
	 */
	@ApiModelProperty(value = "民族", readOnly = true)
	@Column(length = 20)
	private String national;
	
	/**
	 * 最终学历
	 */
	@ApiModelProperty(value = "最终学历", readOnly = true)
	@Column(length = 10)
	private String education;
	
	/**
	 * 最终学位
	 */
	@ApiModelProperty(value = "最终学位", readOnly = true)
	@Column(length = 10)
	private String degree;
	
	/**
	 * 国内毕业院校
	 */
	@ApiModelProperty(value = "国内毕业院校", readOnly = true)
	@Column(length = 100)
	private String uniformNameOfLocal;
	
	/**
	 * 国外毕业院校
	 */
	@ApiModelProperty(value = "国外毕业院校", readOnly = true)
	@Column(length = 100)
	private String uniformNameOfInternational;
	
	/**
	 * 留学国家
	 */
	@ApiModelProperty(value = "留学国家", readOnly = true)
	@Column(length = 100)
	private String studyAbroadCountry;
	
	/**
	 * 留学国家2
	 */
	@ApiModelProperty(value = "留学国家2", readOnly = true)
	@Column(length = 100)
	private String studyAbroadCountry2;
	
	/**
	 * 技术领域
	 */
	@ApiModelProperty(value = "技术领域", readOnly = true)
	@Column(length = 100)
	private String technicalField;
	
	/**
	 * 职称级别
	 */
	@ApiModelProperty(value = "职称级别", readOnly = true)
	@Column(length = 50)
	private String titleLevel;
	
	/**
	 * 职称系列
	 */
	@ApiModelProperty(value = "职称系列", readOnly = true)
	@Column(length = 50)
	private String titleSeries;
	
	/**
	 * 籍贯-省
	 */
	@ApiModelProperty(value = "籍贯-省", readOnly = true)
	@Column(length = 20)
	private String nativePlaceState;
	
	/**
	 * 籍贯-市
	 */
	@ApiModelProperty(value = "籍贯-市", readOnly = true)
	@Column(length = 20)
	private String nativePlaceCity;
	
	/**
	 * 籍贯-区
	 */
	@ApiModelProperty(value = "籍贯-区", readOnly = true)
	@Column(length = 20)
	private String nativePlaceDistrict;
	
	/**
	 * 出生地-省
	 */
	@ApiModelProperty(value = "出生地-省", readOnly = true)
	@Column(length = 20)
	private String birthPlaceState;
	
	/**
	 * 出生地-市
	 */
	@ApiModelProperty(value = "出生地-市", readOnly = true)
	@Column(length = 20)
	private String birthPlaceCity;
	
	/**
	 * 出生地-区
	 */
	@ApiModelProperty(value = "出生地-区", readOnly = true)
	@Column(length = 20)
	private String birthPlaceDistrict;
	
	/**
	 * 出生日期
	 */
//	@ApiModelProperty(value = "出生日期", readOnly = true, example = "yyyy-MM-dd")
//	@Temporal(TemporalType.DATE)
//	@DateTimeFormat(pattern = "yyyy-MM-dd")
//	@JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd")
	@ApiModelProperty(value = "出生日期", readOnly = true)
	@Column()
	private String birthday;
	
	/**
	 * 家庭电话
	 */
	@ApiModelProperty(value = "家庭电话", readOnly = true)
	@Column(length = 20)
	private String homeTelephone;
	
	/**
	 * 手机号码
	 */
	@ApiModelProperty(value = "手机号码", readOnly = true)
	@Column(length = 20)
	private String phoneNumber;
	
	/**
	 * 电子邮箱
	 */
	@ApiModelProperty(value = "电子邮箱", readOnly = true)
	private String email;
	
	/**
	 * 紧急联系人
	 */
	@ApiModelProperty(value = "紧急联系人", readOnly = true)
	@Column(length = 100)
	private String emergencyContact;
	
	/**
	 * 紧急联系人电话
	 */
	@ApiModelProperty(value = "紧急联系人电话", readOnly = true)
	@Column(length = 20)
	private String emergencyTelephone;
	
	/**
	 * 专家唯一标识(天津)
	 */
	@ApiModelProperty(value = "专家唯一标识(天津)", readOnly = true)
	@Column()
	private String expertTJID;
	
	/**
	 * 专家分类
	 */
	@ApiModelProperty(value = "专家分类", readOnly = true)
	@Column(length = 100)
	private String expertType;
	
	/**
	 * 享受省级政府特殊津贴
	 */
	@ApiModelProperty(value = "享受省级政府特殊津贴", readOnly = true)
	@Column(length = 4)
	private String provincialAllowance;
	
	/**
	 * 个人简介
	 */
	@ApiModelProperty(value = "个人简介", readOnly = true)
	@Column(length = 4000)
	private String resume;
	
	/**
	 * 专家状态
	 */
	@ApiModelProperty(value = "专家状态", readOnly = true)
	@Column(length = 10)
	private String expertStatus;
	
//	@PrePersist
//	private void entityBeforeInsert() {
//		setCreatTime(new Date());
//		setUpdateTime(new Date());
//	}
//
//	@PreUpdate
//	private void entityBeforeModify() {
//		setUpdateTime(new Date());
//	}
}
